package com.hubiao.basics.string;

/**
 * Description  字符串拼接 + 和concat的区别
 *
 * @author hubiao
 * @since 2021-01-14 11:04
 */
public class StringToConcatDemo {

    /***
     * + 可以是【字符串】或者【数字】及【其他基本类型数据】，而concat只能【接收字符串】。
     * + 左右【可以为null】，concat为会【空指针】。
     * 如果拼接空字符串，concat会稍快，在速度上两者可以忽略不计，如果拼接更多字符串建议用StringBuilder。
     * 从字节码来看 + 号编译后就是使用了StringBuiler来拼接，所以一行+ + + 的语句就会创建一个StringBuilder，多条+ + +语句就会创建多个，所以为什么建议用StringBuilder的原因。
     * @param args
     */
    public static void main(String[] args) {
        // example 1
        String str1 = "s1";
        System.out.println( str1 + 100 );
        System.out.println( 100 + str1 );
        String str2 = "s1";
        System.out.println( str1.concat( "100" ) );
        // example2
        String str3 = "s3";
        System.out.println( str3 + null );
        System.out.println( null + str3 );
        String str4 = null;
        System.out.println( str4.concat( "a" ) );
        System.out.println( "a".concat( str4 ) );

        String url = "http://192.168.2.26/user/info//list";
        System.out.println( url.replaceAll( "/+", "/" ) );
    }
}
